public class code01 {
//    二叉搜索树的第 k 个最小值

    ArrayList<Integer> arr = new ArrayList<>();

    public int kthSmallest(TreeNode root, int k) {
        // 解法一：暴力解，创建出一个数组，将遍历得到的二叉树存储起来
        // 之后通过排序操作获取到相关值
        abs(root);
        // 定义一个数组
        int size = arr.size();
        int[] array = new int[size];
        for(int i = 0; i < size; i++) {
            array[i] = arr.get(i);
        }
        Arrays.sort(array);

        // 这里需要注意的是，因为查找的是数组下标，所以要针对 k - 1
        int re = array[k - 1];

        return re;
    }

    // 实现遍历代码
    private void abs(TreeNode node) {
        // 定义返回值条件
        if(node == null) {
            return;
        }

        arr.add(node.val);
        abs(node.left);
        abs(node.right);
    }
}
